home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / doors / chat / chatutil2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-26  |  3.2 KB  |  162 lines

  1. #include "chat.h"
  2. #include <libraries/dos.h>
  3.  
  4. extern int LocalLog;
  5. extern struct MsgPort *port;
  6. extern struct MsgPort *replymp;
  7. extern struct JHMessage *Jhmsg,*msg;
  8.  
  9. extern enum MainArg mainarg;
  10.  
  11. extern struct MsgPort *myport, *repport, *otport[NODENUM];
  12. extern struct MSMes mymes, mesbuf, *otmes;
  13.  
  14. extern FILE *str;
  15. extern char mynm[NAMELEN], otnm[NODENUM][NAMELEN], fname[100], mainline[100];
  16. extern char myportnm[10], repportnm[20];
  17. extern char dispbuf[100], inkey[100];
  18. extern int i, j, in, mynd, dnd, col, otno, inpt, elnfl, nmfl;
  19.  
  20. disp( s, rnd )
  21. char *s;
  22. {
  23. int i, j, sp;
  24. char tmp[100];
  25.  
  26.  i = 0;
  27.  if( dnd != rnd ) {
  28.   newln( rnd );
  29.   if( s[i] == CR ) i++;
  30.  };
  31.  tmp[1] = 0;
  32.  for( ; s[i]; i++ ) {
  33.   tmp[0] = s[i];
  34.   if( tmp[0] >= ' ' ) {
  35.    if( col >= 79 ) {
  36.     if( tmp[0] == ' ' ) { 
  37.      cr();
  38.      col = 0;
  39.      nmfl = 0; 
  40.      continue;
  41.     };
  42.     for( j = 78; dispbuf[j] != ' ' && j; j-- );
  43.     sp = j;
  44.     if( sp > 49 ) {
  45.      bsn( 79 - sp );
  46.      cr(); 
  47.      while( dispbuf[sp] == ' ' && sp < 79 ) sp++;
  48.      dispbuf[79] = 0;
  49.      sm0( &dispbuf[sp] );
  50.      col = 79 - sp;
  51.      nmfl = 0; 
  52.      sm0( tmp );
  53.      dispbuf[col++] = tmp[0];
  54.     }
  55.     else {
  56.      cr(); col = 0; nmfl = 0;
  57.      sm0( tmp );
  58.      dispbuf[col++] = tmp[0];
  59.     };
  60.    } 
  61.    else {
  62.     sm0( tmp );
  63.     dispbuf[col++] = tmp[0];
  64.    };
  65.   }
  66.   else switch( tmp[0] ) {
  67.    case BS: if( col == nmfl ) continue;
  68.    bs(); col--; break;
  69.    case CR: cr(); col = 0; nmfl = 0; break;
  70.    case FF: col = 0; nmfl = 0; sm0( tmp ); break;
  71.    case BELL: sm0( tmp ); break;
  72.   }
  73.  };
  74.  return(0);
  75. }
  76.  
  77. prlx( l )
  78. long l;
  79. {
  80. char temp[124];
  81.  sprintf( temp, "%lX", l ); sm1( temp );
  82.  return(0);
  83. }
  84.  
  85. listother()
  86. {
  87. int i;
  88. char tmp[100];
  89.  
  90.   cr();
  91.   switch( otno ) {
  92.    case 0: sm1( "The Chat Room is: Empty!" ); break;
  93.    case 1: sm2( "There Is 1 User In The Chat Room:" ); break;
  94.    default:
  95.     sprintf( tmp, "There Are %d Users In The Chat Room: ", otno );
  96.     sm2( tmp ); 
  97.   };
  98.   for( i = 0; i < NODENUM; i++ ) {
  99.    if( otport[i] == 0 ) continue;
  100.    sm0( " " );
  101.    sm1( otnm[i] );
  102.   };
  103.   cr();
  104.   return(0);
  105. }
  106.  
  107. MSCloseOut()
  108. {
  109.   putuserstring( "\tExited AEChat\n",BB_CALLERSLOG);
  110.   ShutDown();
  111.   end();
  112.   return(0);
  113. }
  114.  
  115.  
  116. parsemain()
  117. {
  118. int i, len;
  119.  
  120.   len = strlen( mainline );
  121.   for( i = len-1; mainline[i] == ' '; i-- ) mainline[i] = 0; 
  122.   for( i = 0; mainline[i] == ' '; i++ );
  123.   for( ; mainline[i] != ' ' && i < len; i++ );
  124.   if( i == len ) return( NONE );
  125.   for( ; mainline[i] == ' '; i++ );
  126.   if( i == len ) return( NONE );
  127.   if( stricmp( &mainline[i], "ON" ) == 0 ) return( ON );
  128.   if( stricmp( &mainline[i], "OFF" ) == 0 ) return( OFF );
  129.   return( ERR );
  130. }
  131.  
  132. chatoff()
  133. {
  134.   sprintf( fname, "env:STATUS@%d", mynd );
  135.   str = fopen( fname,"w" );
  136.   if( str != NULL ) {
  137.    cr();
  138.    sm2( "<Chat Requests From Other Nodes Will Be Denied!>" );
  139.   };
  140.   if( str == NULL ) return( 1 );
  141.   fclose( str );
  142.   CloseOut();
  143.   return(0);
  144. }
  145.  
  146. chaton()
  147. {
  148.   sprintf( fname, "env:STATUS@%d", mynd );
  149.   remove( fname );
  150.   cr();
  151.   sm2( "<Chat Requests From Other Nodes Will Be Accepted>" );
  152.   CloseOut();
  153.   return(0);
  154. }
  155.  
  156. chathelp()
  157. {
  158.   cr();
  159.   sm2( "Usage: CHAT [ON | OFF]" );
  160.   return(0);
  161. }
  162.